package org.zxp.javacheck.numformat;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.UUID;

/**
 * @program: effectiveJava
 * @description:
 * @author: X-Pacific zhang
 * @create: 2020-04-16 15:48
 **/
public class Test {
    public static void main(String[] args) throws ParseException {
//        String a = "0.00";
//        BigDecimal bigDecimal = new BigDecimal(a);//
////        System.out.println(bigDecimal.setScale(2,RoundingMode.HALF_UP).doubleValue());
//        System.out.println(decimalFormat(bigDecimal))
        String dd = "1989-04-29";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(dd);
        System.out.println(date.getTime());
    }


    public static String decimalFormat(BigDecimal bigDecimal,int newScale){
        if(bigDecimal == null){
            return "0."+genStr0(newScale);
        }
        double db = bigDecimal.doubleValue();
        BigDecimal bigDecimal2= new BigDecimal(Double.toString(db));
        Double b = bigDecimal2.setScale(newScale, BigDecimal.ROUND_HALF_UP).doubleValue();
        DecimalFormat fmt = new DecimalFormat("#0."+genStr0(newScale));
        return fmt.format(b);
    }

    private static String genStr0(int num){
        StringBuilder sb = new StringBuilder();
        for(int i = 0;i < num;i++){
            sb.append("0");
        }
        return sb.toString();
    }

    @org.junit.Test
    public void Str2bigDecimal(){
        String str1="1023199";
        BigDecimal bd=new BigDecimal(str1).divide(new BigDecimal(100));;
        System.out.println(bd);
    }


    @org.junit.Test
    public void testMname(){
        String ss ="200000.0090";
        BigDecimal bd=new BigDecimal(ss);
        System.out.println(decimalFormat(bd));
    }

    public static String decimalFormat(BigDecimal bigDecimal){
        if(bigDecimal == null){
            return "0.00";
        }
        double db = bigDecimal.doubleValue();
        BigDecimal bigDecimal2= new BigDecimal(Double.toString(db));
        Double b = bigDecimal2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        DecimalFormat fmt = new DecimalFormat("#0.00");
        return fmt.format(b);
    }
}
